package logger

import (
	"go.uber.org/zap"
	"go.uber.org/zap/zapcore"
	"os"
	"trpg-common/config"
)

var Logger *zap.SugaredLogger

func init() {
	writer := zapcore.AddSync(os.Stdout) // 设置日志输出的设备
	if config.Get("log.out") != nil {
		file, err := os.Open(config.GetString("log.out"))
		if err != nil {
			return
		}
		writer = zapcore.AddSync(file)
	}
	encoder := zapcore.NewConsoleEncoder(zap.NewProductionEncoderConfig()) // 设置编码器，即日志输出的格式，默认提供了 json 和 console 两种编码器，这里我们还是使用 json 的编码器
	level := zapcore.InfoLevel
	if config.Get("log.level") != nil {
		parseLevel, err := zapcore.ParseLevel(config.GetString("log.level"))
		if err != nil {
			return
		}
		level = parseLevel
	}
	core := zapcore.NewCore(encoder, writer, level) // 设置日志的默认级别
	logger := zap.New(core)
	Logger = logger.Sugar()
}
